/**
 * 定义common函数库
 * @param  {Object} g 全局变量
 */
;(function(g){

  if (!g.wxqf_common) return false;

  var common = g.wxqf_common;

  /**
   * 属性
   */
  common.urlToken = null;
  common.scriptCode = null;



  /**
   * 获取当前token
   */
  common.getToken = function()
  {
    if ( this.urlToken ) return this.urlToken;

    var urlArr = this.parseUrl(window.location.href);
    if ( urlArr.queryParams.token ) {
      this.urlToken = urlArr.queryParams.token;
    }
    return this.urlToken;
  };

  /**
   * 获取微信name
   */
  common.getWeixinName = function()
  {
    // 2013-10-29
    if ($('.account_info .nickname').length) {
      // 修复&nbsp;的bug 2013-11-07 liw
      var name = $('.account_info .nickname').html().trim();
      while(name.indexOf('&nbsp;') != -1) {
        name = name.replace(/\&nbsp;/, ' ');
      }
      return name;
    }

    var textObj;
    // 实时消息页面
    textObj = $('#accountArea a:eq(0)');
    if (textObj.length) return textObj.text().trim();
    // 设置页面
    textObj = $('.userinfoArea .verifyInfo:eq(1)');
    if (textObj.length) return textObj.text().trim();
    return '';
  };


  /**
   * 获取用户信息
   * @param {Int} fakeid
   * @param {Function} cb 回调函数
   */
  common.getUserInfo = function(fakeid, cb)
  {
    fakeid = parseInt(fakeid);
    if (!fakeid) {
      cb('fakeid is empty');
      return;
    }
    var url = this.getPageUrl('userinfo');
    var token = this.getToken();
    if (!token) {
      cb('getToken failed');
      return;
    }

    var postData = {
        't'      : 'ajax-getcontactinfo',
        'lang'   : 'zh_CN',
        'fakeid' : fakeid,
        'token'  : token
    };

    $.post(url, postData, function(data){
      cb(null, data);
    }, 'json');
  };

  /**
   * 通过runtime发送单条消息的统一函数
   * @param {Object} data 要传输的数据
   * @param {Function} cb 回调函数
   * @return
   */
  common.sendToBg = function(data, cb)
  {
    cb = cb || this.loop;
    if ( !data ) {
      if(cb) cb('common.send: data is empty', null);
      return;
    }
    data['weixin_name'] = this.getWeixinName();

    var me = this;
    chrome.runtime.sendMessage(data, function(res){
      if (me.DEBUG) console.log('sendToBg: data, res', data, res);
      if (cb) cb(res);
    });
  };

  /**
   * 调用背景页面的方法
   * @param {String} api 接口字符串
   * @param {Object} 参数
   * @param {Function} cb 回调函数
   */
  common.api = function(api, param, cb)
  {
    param.api = api;
    this.sendToBg(param, cb);
  };

})(window);




/**
 * 其他页面的相关处理
 */
$(function(){

  // 判断是否是登录页面，如果是则提示请登录
  if ($('#login-form').length && window.location.hash == "#wxqfzs_login") {
    wxqf_common.api('showNoti', { 'content': '请先登录公众平台' });
    return;
  }

  // 跳转到别的页面
  wxqf_common.api('getRedirectPage', {}, function(data){
    if (!data.result) return false;
    var url = wxqf_common.getPageUrl(data.result, wxqf_common.getToken());
    window.location.href = url;
  });

  // 关闭通知
  wxqf_common.api('closeNoti', {})

});